﻿using Shop.Model.AdvertPlace;
using Shop.Model.DB;
using Shop.RemoteModel;
using Shop.RemoteModel.AdvertPlace.Model;
using WeDonekRpc.Model;

namespace Shop.Collect
{
    public interface IAdvertPlaceCollect
    {
        Result[] Gets<Result> ( AdvertPlaceGetParam query ) where Result : class, new();
        DBAdvertPlace Get ( long id );
        void Delete ( DBAdvertPlace place );
        long Add ( PlaceAdd add );
        Result[] Gets<Result> ( AdvertPlaceStatus? status ) where Result : class, new();
        bool Set ( DBAdvertPlace place, PlaceSet set );
        void SetStatus ( DBAdvertPlace place, AdvertPlaceStatus status );
        Dictionary<long, string> GetNames ( long[] ids );
        T Get<T> ( long id ) where T : class;
        Result[] Query<Result> ( AdvertPlaceQueryParam query, IBasicPage paging, out int count ) where Result : class;
        Dictionary<long, string> GetExampleImg ( string[] placeType );
    }
}